/**
 * 
 */
package com.gr.staffpm.notes.activity.dao;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.gr.staffpm.datatypes.Activities;
import com.gr.staffpm.datatypes.Activity;
import com.gr.staffpm.datatypes.Task;
import com.gr.staffpm.datatypes.User;


/**
 * @author Graham Rhodes 21 Feb 2011 00:24:12
 */
public interface ActivityDAO extends Serializable {

    /**
     * @param userId
     * @return
     */
    List<Activity> getRecentActivityForUser(User user, Date start, Date end);

    /**
     * @return
     */
    Activities getActivityType(String activityType);

    /**
     * @param activityType
     * @param notified
     * @param task
     * @param b
     * @param creator
     * @param date
     */
    void addActivity(Activities activityType, User notified, Task task, boolean newNote, User creator, Date date);

    void updateActivity(Activity activity);

    /**
     * @param user
     * @return
     */
    int getNewActivityCount(User user);

}
